const fs = require('fs')
const path = require('path')

// readFile
// 第一个参数说访问文件，第二个参数是使用什么样的字符编码，第三个参数是一个回调函数
// fs.readFile(path.resolve('8-data.txt'), 'utf-8', (err, data) => {
// 	console.log(err) // null(没有错误所以返回这个)
// 	console.log(data) // 徐镜泉学习
// })

// writeFile，默认是覆盖操作，会将原本的内容覆盖
// 如果操作的目录不存在的话，会创建一个文件
// 第一个参数是访问的文件，第二个参数是写入的数据，第三个是一个对象，第四个是是一个回调函数
// fs.writeFile(
// 	'8-data.txt',
// 	'hello node.js',
// 	{
// 		mode: 438, // 操作权限
// 		flag: 'r+', // 写入方式,重第一个位置写入不清空原来的内容，'w+'就是默认的配置，清空原本的内容在写入
// 		encoding: 'utf-8',
// 	},
// 	(err) => {
// 		if (!err) {
// 			fs.readFile(path.resolve('8-data.txt'), 'utf-8', (err, data) => {
// 				console.log(data) // hello node.js,
// 			})
// 		}
// 	}
// )

// appendFile
// 第一个参数是文件路径，第二个参数是写入的内容
// 如果写入的路径不存在，会自动创建一个文件
// fs.appendFile('8-data.txt', '徐镜泉学习', (err) => {
// 	console.log('写入成功')
// })

// copyFile
// 第一个参数是数据源的路径，第二个参数是复制去那个地方
// 将拷贝的内容替换目标文件内容
// fs.copyFile('8-data.txt', 'data.txt', () => {
// 	console.log('拷贝成功')
// })

// watchFile
// 第一个参数是监控的文件路径，第二个参数是一个对象（目前表示每20毫秒监控一次）
fs.watchFile('8-data.txt', { interval: 20 }, (curr, prev) => {
	if (curr.mtime !== prev.mtime) {
		console.log('文件被修改了')
		fs.unwatchFile('8-data.txt') // 取消监控
	}
})
